home *** CD-ROM | disk | FTP | other *** search
/ Champak 52 / Volume 52 - JOGO DISK .iso / Games / shopdrop.swf / scripts / __Packages / smashing / Point3D.as < prev    next >
Text File  |  2007-09-27  |  4KB  |  182 lines

  1. class smashing.Point3D
  2. {
  3.    function Point3D(x, y, z)
  4.    {
  5.       this.x = Number(x);
  6.       this.y = Number(y);
  7.       this.z = Number(z);
  8.    }
  9.    function get length()
  10.    {
  11.       return Math.sqrt(this.x * this.x + this.y * this.y + this.z * this.z);
  12.    }
  13.    function set length(newLength)
  14.    {
  15.       if(this.__get__length() != 0)
  16.       {
  17.          var _loc2_ = newLength / this.__get__length();
  18.          this.x *= _loc2_;
  19.          this.y *= _loc2_;
  20.          this.z *= _loc2_;
  21.       }
  22.    }
  23.    function get lengthSqu()
  24.    {
  25.       return this.x * this.x + this.y * this.y + this.z * this.z;
  26.    }
  27.    function copy()
  28.    {
  29.       return new smashing.Point3D(this.x,this.y,this.z);
  30.    }
  31.    function addPoint(p)
  32.    {
  33.       return new smashing.Point3D(p.x + this.x,p.y + this.y,p.z + this.z);
  34.    }
  35.    function subtractPoint(p)
  36.    {
  37.       return new smashing.Point3D(this.x - p.x,this.y - p.y,this.z - p.z);
  38.    }
  39.    function addScalar(n)
  40.    {
  41.       return new smashing.Point3D(this.x + n,this.y + n,this.z + n);
  42.    }
  43.    function subtractScalar(n)
  44.    {
  45.       return new smashing.Point3D(this.x - n,this.y - n,this.z - n);
  46.    }
  47.    function addPointMe(p)
  48.    {
  49.       this.x += p.x;
  50.       this.y += p.y;
  51.       this.z += p.z;
  52.    }
  53.    function subtractPointMe(p)
  54.    {
  55.       this.x -= p.x;
  56.       this.y -= p.y;
  57.       this.z -= p.z;
  58.    }
  59.    function addScalarMe(n)
  60.    {
  61.       this.x += n;
  62.       this.y += n;
  63.       this.z += n;
  64.    }
  65.    function subtractScalarMe(n)
  66.    {
  67.       this.x -= n;
  68.       this.y -= n;
  69.       this.z -= n;
  70.    }
  71.    function multiply(n)
  72.    {
  73.       var _loc2_ = this.copy();
  74.       _loc2_.x *= n;
  75.       _loc2_.y *= n;
  76.       _loc2_.z *= n;
  77.       return _loc2_;
  78.    }
  79.    function divide(n)
  80.    {
  81.       var _loc2_ = this.copy();
  82.       if(n == 0)
  83.       {
  84.          _loc2_.x = 0;
  85.          _loc2_.y = 0;
  86.          _loc2_.z = 0;
  87.          return undefined;
  88.       }
  89.       _loc2_.x /= n;
  90.       _loc2_.y /= n;
  91.       _loc2_.z /= n;
  92.       return _loc2_;
  93.    }
  94.    function multiplyMe(n)
  95.    {
  96.       this.x *= n;
  97.       this.y *= n;
  98.       this.z *= n;
  99.    }
  100.    function divideMe(n)
  101.    {
  102.       this.x /= n;
  103.       this.y /= n;
  104.       this.z /= n;
  105.    }
  106.    function dot(p)
  107.    {
  108.       return this.x * p.x + this.y * p.y + this.z * p.z;
  109.    }
  110.    function cross(p)
  111.    {
  112.       return new smashing.Point3D(this.y * p.z - this.z * p.y,this.z * p.x - this.x * p.z,this.x * p.y - this.y * p.x);
  113.    }
  114.    function pseudoCross()
  115.    {
  116.       return new smashing.Point3D(this.y,- this.x,this.z);
  117.    }
  118.    function normalize()
  119.    {
  120.       if(!this.x && !this.y && !this.z)
  121.       {
  122.          return undefined;
  123.       }
  124.       var _loc2_ = this.__get__length();
  125.       return new smashing.Point3D(this.x / _loc2_,this.y / _loc2_,this.z / _loc2_);
  126.    }
  127.    function normalizeMe()
  128.    {
  129.       if(!this.x && !this.y)
  130.       {
  131.          return undefined;
  132.       }
  133.       var _loc2_ = this.__get__length();
  134.       this.x /= _loc2_;
  135.       this.y /= _loc2_;
  136.       this.z /= _loc2_;
  137.    }
  138.    function reverse()
  139.    {
  140.       var _loc2_ = new smashing.Point3D(this.x * -1,this.y * -1,this.z * -1);
  141.       return _loc2_;
  142.    }
  143.    function reverseMe()
  144.    {
  145.       this.x *= -1;
  146.       this.y *= -1;
  147.       this.z *= -1;
  148.    }
  149.    function findCosine(vOther)
  150.    {
  151.       var _loc3_ = this.dot(vOther);
  152.       var _loc4_ = this.__get__length() * vOther.__get__length();
  153.       var _loc2_ = _loc3_ / _loc4_;
  154.       return _loc2_;
  155.    }
  156.    function equals(p)
  157.    {
  158.       if(this.x == p.x && this.y == p.y && this.z == p.z)
  159.       {
  160.          return true;
  161.       }
  162.       return false;
  163.    }
  164.    function zero()
  165.    {
  166.       this.x = 0;
  167.       this.y = 0;
  168.       this.z = 0;
  169.    }
  170.    function distSqu(p)
  171.    {
  172.       var _loc4_ = p.x - this.x;
  173.       var _loc3_ = p.y - this.y;
  174.       var _loc2_ = p.z - this.z;
  175.       return _loc4_ * _loc4_ + _loc3_ * _loc3_ + _loc2_ * _loc2_;
  176.    }
  177.    function toString()
  178.    {
  179.       return "Point3D (" + this.x + "," + this.y + "," + this.z + ")";
  180.    }
  181. }
  182.